package com.ktjiaoyu.controller;

import com.ktjiaoyu.entity.SysUser;
import com.ktjiaoyu.service.SysUserService;
import com.ktjiaoyu.utils.Constants;
import jakarta.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;

@Controller
public class LoginController extends BaseController {
    @Autowired
    private SysUserService sysUserService;

    /**
     * 登录接口
     * @return
     */
    @GetMapping("/login")
    public String login() {
        // 转发到登录页面
        return forward("/login.jsp");
    }

    /**
     * 登录接口
     * @param account
     * @param password
     * @return
     */
    @PostMapping(value = "/login")
    public String login(@RequestParam("account") String account,
                        @RequestParam("password") String password) {
        //调用service方法，进行用户匹配
        SysUser loginUser = sysUserService.login(account,password);
        if(loginUser!=null){//登录成功
            // 登录成功，用户信息存入 session
            session(Constants.SESSION_USER,loginUser);
            // 重定向到后台首页
            return redirect("/main/index");
        }else{
            // 设置错误信息到 request 作用域
            request(Constants.REQUEST_ERROR,"用户名或密码错误！");
            // 转发到登录页面
            return forward("/login.jsp");
        }
    }
    /**
     * 退出登录
     * @return
     */
    @GetMapping("/logout")
    public String logout(HttpSession session){
        session.invalidate();
        return redirect("/login");
    }

    // 跳转到后台首页
    @GetMapping("/main/index")
    public String index(){
        return "index";
    }

//    @ExceptionHandler(value = RuntimeException.class)
//    public String handlerException(RuntimeException e, HttpServletRequest request)
//    {
//        // 设置捕获的错误对象到 request 作用域
//        request.setAttribute(Constants.REQUEST_ERROR, e);
//        // 跳转异常页面： /WEB-INF/jsp/500.jsp
//        return "500";
//    }
}
